DavidP (Normal User)
Pro
Messaggi: 87
Iscritto: 31/08/2009
|
Salve vi espongo l'ennesimo problema a cui non riesco a venirne a capo.
allora vorrei creare tipo un impaginazione come quelle che si trovano magari a fine pagine di internet per cambiare pagina, espemio: << < 1 2 3 4 5 6 > >> tutto con delle label e fin qui nessun problema con questo codice:
Codice sorgente - presumibilmente VB.NET |
Dim tbx(50) As Label For i = 0 To 49 tbx(i) = New Label tbx(i).Width = 30 tbx(i).Height = 20 tbx(i).Top = 0 tbx(i).Left = i * 30 Me.Controls.Add(tbx(i)) tbx(i).Text = i + 1 Next
|
questo codice crea 50 label di stesse dimensioni ecc.. ecc..
adesso il mio problema e che arrivato ad un certo punto della form le label scendano sotto partendo dalla prima, esempio:
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
come posso fare??
e possibile assegnare poi a singole label il comando che se cliccate mi diano un msg con il numero presente all'interno??
|
|
torn24 (Normal User)
Pro
Messaggi: 156
Iscritto: 04/01/2008
|
Modifichi la proprietà top e left in base ai numeri di label.
Esempio
Codice sorgente - presumibilmente VB.NET |
Dim tbx(50) As Label Dim j as integer=1 Dim NumeroRighe as integer =0 Dim SpazioIniziale as integer=500 DIm SpaziaturaRighe as integer=100 For i = 0 To 49 IF i>8 THEN 'calcolo il numero righe da otto elementi NumeroRighe=Cint(i/8) END IF IF i mod NumeroRighe =0 THEN ' SE non esiste resto, sono tutte righe da otto, devo partire da inizio riga j=1 END IF tbx(i) = New Label tbx(i).Width = 30 tbx(i).Height = 20 tbx(i).Top = DistanzaIniziale + NumeroRighe * SpaziaturaRighe 'spazio tra riga e riga tbx(i).Left = j * 30 Me.Controls.Add(tbx(i)) tbx(i).Text = i + 1 j+=1 Next
|
Qualcosa di simile, forse ha bisogno di correzzioni...
|
|
DavidP (Normal User)
Pro
Messaggi: 87
Iscritto: 31/08/2009
|
grazie infinite per lo spunto lho modificato un po e adesso soddisfa le mie esigenze.
ecco il codice modificato e funzionante, nel caso potesse servire a qualcuno:
Codice sorgente - presumibilmente VB.NET |
Dim numero, spazio, j As Integer Dim tbx(50) As Label numero = 50 spazio = 100 j = 0 For i = 1 To numero If i Mod 10 = 0 Then tbx(i) = New Label tbx(i).Width = 20 tbx(i).Height = 20 tbx(i).Top = spazio tbx(i).Left = j * 30 Me.Controls.Add(tbx(i)) tbx(i).Text = i spazio += 20 j = 0 Else tbx(i) = New Label tbx(i).Width = 20 tbx(i).Height = 20 tbx(i).Top = spazio tbx(i).Left = j * 30 Me.Controls.Add(tbx(i)) tbx(i).Text = i j += 1 End If Next
|
Adesso, la cosa più importante è come assegno ad una label che se cliccata mi esegue un comando?
Grazie mille.
Grazie lo stesso ho risolto il tutto..
Ultima modifica effettuata da DavidP il 31/10/2016 alle 22:45 |
|